package com.insight.modules.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.insight.modules.system.entity.SysAnnouncement;

/**
 * @Description: 系统通告表
 * @Author: jeecg-boot
 * @Date:  2019-01-02
 * @Version: V1.0
 */
/**
 * 系统公告相关业务服务接口
 * 继承 MyBatis-Plus 的 IService，提供基础CRUD操作
 */
public interface ISysAnnouncementService extends IService<SysAnnouncement> {

	/**
	 * 保存新的公告信息
	 *
	 * @param sysAnnouncement 公告实体对象
	 */
	void saveAnnouncement(SysAnnouncement sysAnnouncement);

	/**
	 * 更新已有的公告信息
	 *
	 * @param sysAnnouncement 包含更新内容的公告实体
	 * @return 是否更新成功，true表示成功，false表示失败
	 */
	boolean upDateAnnouncement(SysAnnouncement sysAnnouncement);

	/**
	 * 便捷方法，快速创建并保存公告
	 *
	 * @param title       公告标题
	 * @param msgContent  公告内容
	 */
	void saveSysAnnouncement(String title, String msgContent);

	/**
	 * 根据用户ID和消息类别分页查询公告信息
	 *
	 * @param page        分页对象
	 * @param userId      用户ID
	 * @param msgCategory 消息类别（可用于筛选不同类型公告）
	 * @return 分页后的公告列表
	 */
	Page<SysAnnouncement> querySysCementPageByUserId(Page<SysAnnouncement> page, String userId, String msgCategory);

	/**
	 * 根据多个公告ID批量删除公告
	 *
	 * @param ids 多个公告ID，通常为逗号分隔的字符串
	 * @return 是否删除成功，true表示成功，false表示失败
	 */
	Boolean removeAnnouncement(String ids);
}

